// pages/medetail/pay/pay.js
import {wechatpayapi,wechatpaylxapi} from "../../../utils/api"
import utils from "../../../utils/util"
// 轮询定义的时间变量
var time =null  
Page({

    /**
     * 页面的初始数据
     */
    data: {
        paylist:[10,20,50,100,200],
        indexid:0,
        num:null,
        logo:"",
        wechatoff:true
    },
    paytab(e){
        console.log(e)
        this.setData({
            indexid :e.currentTarget.dataset.id
        })
    },
    // 支付轮询函数
    async _wxchatlxfn(data){
        const res =await wechatpaylxapi(data)
        console.log(res);
        if (res.data.code==200) {
            // 成功
            console.log(res.data);
            clearInterval(time)
            utils.wxshowtoast(res.data.msg)
            wx.reLaunch({
                url: '/pages/me/me',
              }) 
        } else if(res.data.code==201){
            // 已经成功了
            clearInterval(time)
            utils.wxshowtoast(res.data.msg)
            wx.reLaunch({
            url: '/pages/me/me',
            }) 
        }
    },
    // 立即充值
   async rechargefn(){
       var that = this 
       let regnum = /^\+?[1-9][0-9]*$/
       if(this.data.indexid!=6){
        this.setData({
            num:this.data.paylist[this.data.indexid]
        })
       }
       if(this.data.num === null || !regnum.test(this.data.num)){
          return utils.wxshowtoast("请输入正确的金额")
       }
       if(this.data.wechatoff){
            that.setData({
                wechatoff:false
            })
            console.log(0);
            utils.showLoading("正在提交支付...")
            const res = await wechatpayapi({
                pay_type:1,
                pay_money:this.data.num*100
            })
            wx.hideLoading()
            console.log(res);
            if (res.data.code==200) {
                var pay_sn= res.data.data.pay_sn
                if(res.data.data.pay_type==1){
                   wx.requestOrderPayment({
                    timeStamp: res.data.data.timeStamp,
                    nonceStr: res.data.data.nonceStr,
                    package: res.data.data.package,
                    signType:res.data.data.signType,
                    paySign: res.data.data.sign || res.data.data.paySign,
                    success (res) {
                    that.setData({
                        wechatoff:true
                    })
                    console.log(res);
                     轮询支付结果
                    time=setInterval(()=>{
                        that._wxchatlxfn({pay_sn:pay_sn})
                    },1000)
                    },
                    fail (ret) {
                    console.log(ret);
                    that.setData({
                        wechatoff:true
                    })
                    if (ret.errMsg === 'requestOrderPayment:fail cancel') {
                            utils.wxshowtoast('用户取消支付')
                        }
                    }
                    })
                }else if(res.data.data.pay_type==2){
     
                    wx.requestPayment({
                       nonceStr: res.data.data.nonceStr,
                       package: res.data.data.package,
                       paySign: res.data.data.paySign,
                       timeStamp:  res.data.data.timeStamp,
                       signType: res.data.data.signType,
                        success (res) {
                        console.log(res);
                        that.setData({
                            wechatoff:true
                        })
                        //  轮询支付结果
                        time=setInterval(()=>{
                            that._wxchatlxfn({pay_sn:pay_sn})
                        },1000)
                        },
                        fail (ret) {
                        console.log(ret);
                        that.setData({
                            wechatoff:true
                        })
                        if (ret.errMsg === 'requestOrderPayment:fail cancel') {
                                utils.wxshowtoast('用户取消支付')
                            }
                        }
                    })
                }
               
            } else {
                utils.wxshowtoast(res.data.msg)
                that.setData({
                    wechatoff:true
                })
            }
       }else{
        utils.wxshowtoast('用户已提交支付')
       }
    },
    payinputfn(e){
        this.setData({
            indexid:6
        })
        let regnum = /^\+?[1-9][0-9]*$/
        regnum.test(e.detail.value)? utils.wxshowtoast("输入正确"):utils.wxshowtoast("请输入正确的金额")
        this.setData({
            num:e.detail.value
        })
        // console.log(e.);
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
         this.setData({
            logo:__wxConfig.accountInfo.icon
         })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})